﻿<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <script type="text/javascript" src="../Content/highlighter/scripts/shCore.js"></script>
    <script type="text/javascript" src="../Content/highlighter/scripts/shBrushCSharp.js"></script>
    <script type="text/javascript" src="../Content/highlighter/scripts/shBrushSql.js"></script>
    <link type="text/css" rel="stylesheet" href="../Content/highlighter/styles/shCore.css" />
    <link type="text/css" rel="stylesheet" href="../Content/highlighter/styles/shCoreEclipse.css" />
    <script type="text/javascript">SyntaxHighlighter.all();</script>
</head>
<body>
    <h3>数据库实体类生成</h3><br />
        <b>支持数据库mysql,oracle,sqlserver,postgresql,sqlite</b><br/>
        新建以.nf.sql结性的Data.nf.sql文件<br />
        <pre class="brush:sql;">
            /*
            set @name='LeZhaiQuanStart'
            set @connectionString='Server=192.168.1.102;Database=lezhaiquanstart;Uid=root;Pwd=root;'
            set @providerName='MySql.Data.MySqlClient'
            set @generateAllTable=false
            */
            --UserA
            select *,'nameA' as '(DateTime)' from user;
            --UserB
            select *,'arr' as '(List&lt;NFinalServer.Entity.UserA>)' from user;
        </pre>
        其中注释的部分为配置项。<br />
        name是数据库连接的名称。<br />
        connectionString是数据库连接字符串。<br />
        providerName为数据库提供程序。<br />
        generateAllTable为是否生成所有的表。<br />
        当你保存该文件时就会生成数据库实体类。<br />
        <img src="../Content/images/nfinalcompiler/Database/数据库实体目录.jpg"/><br />
        <b>高级设置</b>
        其中以上sql中出现了特殊的语句：
        <pre class="brush:sql;">
            --UserA
            select *,'nameA' as '(DateTime)' from user;
        </pre>
        其中，--UserA指所生成的表名为UserA,'nameA'指生成的列名，<br/> 
        as '(DateTime)'则指生成的类型为DateTime类型，*代表生成user表中所有的字段，并使用默认类型。<br />
        <img src="../Content/images/nfinalcompiler/Database/高级实体UserA.jpg"/><br/>
        采用这样的特殊格式，我就可以生成任意类型的数据库实体，包括父子表。<br />
        如：<br />
        <pre class="brush:sql;">
            --UserB
            select *,'arr' as '(List&lt;NFinalServer.Entity.UserA>)' from user;
        </pre>
        其中的一个字段类型指向了UserA表，这样就形成了父子表。<br />
        <b>更新实体表</b><br />
        删除对应的实体类，然后重新保存.nf.sql文件即可生成新的实体类。<br />
</body>
</html>